-
Notifications
You must be signed in to change notification settings - Fork 76
Add Environment for GAMER on GitHub Action Runners #483
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Co-authored-by: technic960183 <48866415+technic960183@users.noreply.github.com>
hfhsieh
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me.
I have left a few comments. Also, should we consider renaming the file github_action.config to github_runner_linux.config, github_server_linux.config, or github_linux.config? I suggest this because a GitHub Action refers to the workflow, not the server running it.
| NVCCFLAG_POT -Xptxas -dlcm=ca | ||
|
|
||
| # 4. Set the GPU Compute Capability | ||
| GPU_COMPUTE_CAPABILITY 750 # NVIDIA Tesla T4 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove trailing space.
| # 1. Paths | ||
| CUDA_PATH /usr | ||
| FFTW2_PATH /path/to/fftw2 | ||
| FFTW3_PATH /path/to/fftw3 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we set either FFTW2_PATH or FFTW3_PATH if we want to compile/run test problems that require gravity for CI/CD? The 1D Shock Tube and 3D Blast Wave tests do not rely on gravity, so they will work without these settings.
About this PR
This pull request introduces the environment setup script and the machine configuration file for the GitHub-hosted GitHub Actions runners, making it easier for the CI pipeline to configure and compile GAMER on GitHub-hosted Actions runners.
Rationale
Changes
Environment setup for GitHub Actions
.github/install_gamer_env.shscript to automate the installation of the necessary dependencies (OpenMPI, HDF5, CUDA toolkit), print out the status of their installation, and configure machine-specific settings for GAMER on GitHub-hosted runners..github/workflows/copilot-setup-steps.ymlworkflow to automatically prepare the environment for Copilot Coding Agents by running the script above.Configuration for GitHub Actions runners
configs/github_action.configwith paths and compiler settings for GitHub-hosted Ubuntu runners, including CUDA, MPI, and HDF5 locations, as well as compiler flags.Usage
Example config for future CI.
Notes
This is the first PR in GAMER contributed by a robot!
See technic960183#3 for the record of tasks that contribute to this pull request.
Copilot Generate Test Report
Please check gamer-project#2 for the original test environment.
GAMER Environment Setup Test Report
Summary
✅ All tests passed successfully! The GAMER environment is properly configured and functional.
1D Shock Tube Tests (doc/wiki/Quick-Start-related/Quick-Start:-1D-Shock-Tube.md)
✅ Test 1: CPU-only without OpenMP
--openmp=false✅ Test 2: CPU-only with OpenMP
--openmp=true✅ Test 3: Hybrid OpenMP/GPU (compile only)
--openmp=true --gpu=true3D Blast Wave Tests (doc/wiki/Quick-Start-related/Quick-Start:-3D-Blast-Wave.md)
✅ Test 4: OpenMP/MPI/HDF5 (no GPU)
--openmp=true --gpu=false --mpi=true --hdf5=true✅ Test 5: OpenMP/GPU/MPI/HDF5 (compile only)
--openmp=true --gpu=true --mpi=true --hdf5=trueEnvironment Details
Dependencies Verified
/usr/bin/mpicxx)/usr/lib/x86_64-linux-gnu/hdf5/serial/usr/bin/nvccgithub_actionprofile configuredCompilation Flags
g++(serial) /mpicxx(MPI)-O2-fopenmpcompute_75,sm_75(Turing architecture)Conclusions
The GAMER environment is ready for production use in the GitHub Actions CI/CD pipeline.
Original prompt